package com.qidian.buy.config.mqdemo;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 戴着假发的程序员
 * @company 起点编程
 * @date 2023/9/15 10:23
 */
@Configuration
public class DirectRabbitConfig {
    // 配置直连交换机
    @Bean
    public DirectExchange directExchange(){
        // 参数和扇形交换机的参数意义一致
        return  new DirectExchange("direct-exchange",true,false);
    }
    // 队里的配置方式和之前是一样的,我们这里配置3个队列
    @Bean
    public Queue queueA(){
        return new Queue("st-A");
    }
    @Bean
    public Queue queueB(){
        return new Queue("st-B");
    }
    @Bean
    public Queue queueC(){
        return new Queue("st-C");
    }
    // 配置队列的绑定
    @Bean
    public Binding bindingA(){
        // bing方法和to方法不在赘述
        // with是用来指定当前的队列在交换机中的路由的key
        return BindingBuilder.bind(queueA()).to(directExchange()).with("sta");
    }
    @Bean
    public Binding bindingB(){
        // bing方法和to方法不在赘述
        // with是用来指定当前的队列在交换机中的路由的key
        return BindingBuilder.bind(queueB()).to(directExchange()).with("stb");
    }
    @Bean
    public Binding bindingC(){
        // bing方法和to方法不在赘述
        // with是用来指定当前的队列在交换机中的路由的key
        return BindingBuilder.bind(queueC()).to(directExchange()).with("stc");
    }

}
